import type { PageParams } from './common'
import type { GetPatientMylistItem } from './patient'
import type { PatientInfo } from './room'
/**
 * 科室(一级科室/二级科室)
 */
export interface DepartmentItem {
  /**
   * 子级集合
   */
  child?: DepartmentItem[]
  /**
   * 科室id
   */
  id?: string
  /**
   * 科室名称
   */
  name?: string
  /**
   * 科室头像
   */
  avatar?: string
}

/**
 * 问诊-保存/修改问诊订单 - 参数
 */
export interface PostPatientConsultOrderParams {
  /**
   * 开药门诊-过敏史0无1有2不清楚
   */
  allergicHistory?: number
  /**
   * 找医生/极速问诊-是否就诊过0未就诊1就诊过
   */
  consultFlag?: number
  /**
   * 使用优惠券，必传可使用优惠券id
   */
  couponId?: string
  /**
   * 选择的科室id-极速问诊必填(选择的科室)
   */
  depId?: string
  /**
   * 咨询的医生-类型为找医生问诊，字段是必须的
   */
  docId?: string
  /**
   * 开药门诊-生育状态及计划0无1备孕中2已怀孕3哺乳期
   */
  fertilityStatus?: number
  /**
   * 病情--症状描述
   */
  illnessDesc: string
  /**
   * 找医生/极速问诊-患病时间1一周内2一月内3半年内4半年以上
   */
  illnessTime?: number
  /**
   * 极速问诊类型：0普通1三甲
   */
  illnessType?: number
  /**
   * 开药门诊-肝功能0正常1异常2不清楚
   */
  liverFunction?: number
  /**
   * 开药问诊-开药问诊的药品id集合
   */
  medicines?: Medicine[]
  /**
   * 患者id,用于关联患者信息
   */
  patientId: string
  /**
   * 补充病例信息-图片集合
   */
  pictures?: Picture[]
  /**
   * 开药门诊-肾功能0正常1异常2不清楚
   */
  renalFunction?: number
  /**
   * 就诊类型1找医生 2极速问诊 3开药问诊默认是1
   */
  type: number
}

export interface Medicine {
  /**
   * 选择的药品id
   */
  id: string
  /**
   * 选择的药品数量
   */
  quantity: number
}

export interface Picture {
  /**
   * 图片id
   */
  id: string
  /**
   * 图片url
   */
  url: string
}

/**
 * 问诊-支付页面-计算就诊信息和抵扣信息 - 参数
 */
export interface GetPatientConsultOrderPreParams {
  /**
   * 可使用优惠券id,当使用优惠券，且指定了优惠券时，传值
   */
  couponId?: string
  /**
   * type为1找医生，必传医生信息，返回医生服务费信息
   */
  docId?: string
  /**
   * 极速问诊级别：0普通1三甲
   */
  illnessType?: string
  /**
   * 问诊类型1找医生2极速问诊3开药问诊
   */
  type: string
  /**
   * useCoupon,默认值1，即使用优惠券
   * 传0，不使用优惠券
   * 不传，默认为是，使用优惠券，
   * 其中，不传优惠券id,默认按照最大优惠券使用，
   * 传了优惠券id,表示使用指定的优惠券
   */
  useCoupon?: string
}

/**
 * 问诊-支付页面-计算就诊信息和抵扣信息 - 返回数据
 */
export interface GetPatientConsultOrderPreData {
  /**
   * 实付金额
   */
  actualPayment: number
  /**
   * 优惠券抵扣
   */
  couponDeduction: number
  /**
   * 使用的优惠券id-使用优惠券时，返回
   */
  couponId?: string
  /**
   * 极速问诊类型：0普通1三甲,极速问题必须有值
   */
  illnessType?: number
  /**
   * 应付款/价格-图文或者极速的费用，极速普通10元，三甲39元
   */
  payment: number
  /**
   * 积分可抵扣
   */
  pointDeduction: number
  /**
   * 1问医生2极速问诊2开药问诊--默认是1
   */
  type?: number
}

/**
 * 支付参数
 */
export interface PostPatientConsultPayParams {
  /**
   * 订单id
   */
  orderId: string
  /**
   * 上课自测时，传值：http://localhost:端口号/+回调页面，
   * vue/uniapp 版本测试环境，传值：http://测试环境域名/+回调页面，
   * 用于决定付款成功后，回调地址是本地还是测试环境地址
   */
  payCallback?: string
  /**
   * 支付方式0微信支付，1支付宝2云闪付
   */
  paymentMethod?: string
}

/**
 * 问诊-查询订单详情信息 - 返回数据
 */
export interface GetPatientConsultOrderDetailData {
  /**
   * 实付金额
   */
  actualPayment: number
  /**
   * 开药门诊-过敏史0无1有2不清楚
   */
  allergicHistory?: number
  /**
   * 取消/退款进度
   */
  cancelProcess?: string
  /**
   * 取消订单原因
   */
  cancelReason?: string
  /**
   * 取消订单原因文字
   */
  cancelReasonValue?: string
  /**
   * 找医生/极速问诊-是否就诊过0未就诊1就诊过
   */
  consultFlag?: number
  /**
   * 倒计时-1表示计时已过(单位s)
   */
  countdown: number
  /**
   * 优惠券抵扣
   */
  couponDeduction: number
  /**
   * 订单创建时间
   */
  createTime: string
  /**
   * 订单创建人-用于医生端聊天的to对象
   */
  creator: string
  /**
   * 咨询的医生--找医生必有，其他类型有医生接单后，也必有
   */
  docInfo?: DocInfo
  /**
   * 是否已经评价1 已评价0 未评价
   */
  evaluateFlag: number
  /**
   * 存在评价，返回评价id
   */
  evaluateId: string
  /**
   * 开药门诊-生育状态及计划0无1备孕中2已怀孕3哺乳期
   */
  fertilityStatus?: number
  /**
   * 订单id
   */
  id: string
  /**
   * 病情--症状描述
   */
  illnessDesc: string
  /**
   * 找医生/极速问诊-患病时间1一周内2一月内3半年内4半年以上
   */
  illnessTime?: number
  /**
   * 开药门诊-肝功能0正常1异常2不清楚
   */
  liverFunction?: number
  /**
   * 开药问诊必有，其他类型无
   */
  medicines?: Medicine[]
  /**
   * 订单编号
   */
  orderNo: string
  /**
   * 患者id,用于关联患者信息
   */
  patientInfo: GetPatientMylistItem
  /**
   * 应付款/价格
   */
  payment: number
  /**
   * 接诊记录的图片信息集合
   */
  pictures: Picture[]
  /**
   * 积分可抵扣
   */
  pointDeduction: number
  /**
   * 处方id信息
   */
  prescriptionId: string
  /**
   * 开药门诊-肾功能0正常1异常2不清楚
   */
  renalFunction?: number
  /**
   * 订单状态1待支付2待接诊3咨询中4已完成5已取消/药品订单10待支付11待发货12待收货13已完成14已取消
   */
  status: OrderStatus
  /**
   * 问诊的订单状态1待支付2待接诊3咨询中4已完成5已取消/药品订单10待支付11待发货12待收货13已完成14已取消
   */
  statusValue: string
  /**
   * 订单类型1问医生2极速问诊3开药问诊4药品订单
   */
  type: number
}

/**
 * 咨询的医生--找医生必有，其他类型有医生接单后，也必有
 */
export interface DocInfo {
  /**
   * 医生头像
   */
  avatar: string
  /**
   * 科室
   */
  depName: string
  /**
   * 医院等级
   */
  gradeName: string
  /**
   * 医院名称
   */
  hospitalName: string
  /**
   * 医生id
   */
  id: string
  /**
   * 医生姓名
   */
  name: string
  /**
   * 职称
   */
  positionalTitles: string
}

export interface Medicine {
  /**
   * 药品价格
   */
  amount: string
  /**
   * 药品图片
   */
  avatar: string
  /**
   * 主键id
   */
  id: string
  /**
   * 药品名称
   */
  name: string
  /**
   * 是否是处方药0不是1是
   */
  prescriptionFlag: string
  /**
   * 选择的药品数量
   */
  quantity: number
  /**
   * 药品规格
   */
  specs: string
  /**
   * 药品用法用量
   */
  usageDosag: string
}
/**
 * 订单状态 1待支付 2待接诊 3咨询中 4已完成 5已取消
 */
export enum OrderStatus {
  DaiZhiFu = 1,
  DaiJieZhen = 2,
  ZiXunZhong = 3,
  YiWanCheng = 4,
  YiQuXiao = 5,
}

export interface RateParams {
  /**
   * 匿名标志
   */
  anonymousFlag: number
  /**
   * 评价内容
   */
  content: string
  /**
   * 评价的医生id
   */
  docId?: string
  /**
   * 订单id
   */
  orderId?: string
  /**
   * 分数
   */
  score: number
}

/**
 * 问诊记录-订单列表-找医生、极速问诊、开药问诊
 */
export interface GetPatientConsultOrderListParams extends PageParams {
  /**
   * 1问医生2极速问诊3开药问诊--默认是1
   */
  type?: number
}

/**
 * 问诊记录-订单列表-找医生、极速问诊、开药问诊-返回数据
 */
export interface GetPatientConsultOrderListData {
  /**
   * 总页数
   */
  pageTotal: number
  /**
   * 订单列表数据
   */
  rows: ConsultOrderItem[]
  /**
   * 总条数
   */
  total: number
}

/**
 * 就诊记录列表数据
 */
export interface ConsultOrderItem {
  /**
   * 问诊类型
   */
  typeValue?: string
  /**
   * 评价id
   */
  evaluateId?: string
  /**
   * 开药门诊必有-过敏史0无1有2不清楚
   */
  allergicHistory?: number
  /**
   * 取消/退款进度
   */
  cancelProcess?: string
  /**
   * 取消订单原因
   */
  cancelReason?: string
  /**
   * 取消订单原因文字
   */
  cancelReasonValue?: string
  /**
   * 找医生/极速问诊必有-是否就诊过0未就诊1就诊过
   */
  consultFlag?: number
  /**
   * 倒计时-1表示计时已过(单位s)
   */
  countdown?: number
  /**
   * 订单创建时间
   */
  createTime: string
  /**
   * 咨询的医生--找医生
   */
  docInfo?: DocInfo
  /**
   * 是否已经评价1 已评价0 未评价
   */
  evaluateFlag: string
  /**
   * 开药门诊必有-生育状态及计划0无1备孕中2已怀孕3哺乳期
   */
  fertilityStatus?: number
  /**
   * 订单id
   */
  id: string
  /**
   * 病情--症状描述
   */
  illnessDesc: string
  /**
   * 找医生/极速问诊必有-患病时间1一周内2一月内3半年内4半年以上
   */
  illnessTime?: number
  /**
   * 开药门诊必有-肝功能0正常1异常2不清楚
   */
  liverFunction?: number
  /**
   * 订单编号
   */
  orderNo?: string
  /**
   * 价格
   */
  payment: number
  /**
   * 患者id,用于关联患者信息
   */
  patientInfo?: PatientInfo
  /**
   * 处方id信息
   */
  prescriptionId?: string
  /**
   * 就诊记录id信息
   */
  recordId: string
  /**
   * 开药门诊必有-肾功能0正常1异常2不清楚
   */
  renalFunction?: number
  /**
   * 订单状态：图文问诊或者开药问诊的订单-1待支付2待接诊3咨询中4已完成5已取消/药品订单-10待支付11待发货12待收货13已完成14已取消
   */
  status: OrderStatus
  /**
   * 订单状态：图文问诊或者开药问诊的订单-1待支付2待接诊3咨询中4已完成5已取消/药品订单-10待支付11待发货12待收货13已完成14已取消
   */
  statusValue?: string
  /**
   * 订单类型1问医生2极速问诊2开药问诊--默认是1
   */
  type?: number
}